package com.example.demo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.View;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import java.util.Locale;

/***
 * 自定义扩展 springMVC
 *
 * 实现 WebMvcConfigurer 接口
 * @EnableWebMvc 接管 MVC 不能添加这个注解  就是导入了一个类
 *
 * 视图解析器
 * 如果自定义一些定制的功能，只要写这个组件，然后将他交给 springBoot，springBoot 就会帮我们自动装配
 * 可以在 yml 中配置像一个配置
 */
@Configuration
public class MyMVCConfig implements WebMvcConfigurer {

    // 图示跳转
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
        registry.addViewController("/index").setViewName("index");
    }

    // 实现了视图解析器的类，就可以吧它看做视图解析器
    // 注册到 Bean 中
//    @Bean
//    public ViewResolver myViewResolver() {
//        return new MyViewResolver();
//    }
//    // 自定义视图解析器
//    public static class MyViewResolver implements ViewResolver {
//        @Override
//        public View resolveViewName(String viewName, Locale locale) throws Exception {
//            return null;
//        }
//    }

    // 国际化注入 Bean 中
    @Bean
    public LocaleResolver localeResolver() {
        return new MyLocalResolve();
    }

    // 添加拦截器

    /**
     *
     * @param registry
     * addPathPatterns 拦截路由模式
     * excludePathPatterns 过滤路由模式
     */
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/index", "login");
//    }

}
